namespace mozilla {
namespace _ipdltest2 {

// (Opens protocols can have different semantics than the endpoints
// that opened them)
intr protocol PTestOpensOpened {
child:
    async Hi();
    intr HiRpc();

parent:
    async Hello();
    sync HelloSync();
    intr HelloRpc();
    async __delete__();

state START:       recv Hello goto HI;
state HI:          send Hi goto HELLO_SYNC;
state HELLO_SYNC:  recv HelloSync goto HELLO_RPC;
state HELLO_RPC:   answer HelloRpc goto HI_RPC;
state HI_RPC:      call HiRpc goto DEAD;
state DEAD:
    recv __delete__;
};


} // namespace mozilla
} // namespace _ipdltest2
